# Maintainer: Anatol Pomozov

pkgname=booster
pkgver=0.6
pkgrel=1
pkgdesc='Fast and secure initramfs generator'
arch=(x86_64)
url='https://github.com/anatol/booster'
license=(MIT)
depends=(bash)
makedepends=(go ruby-ronn-ng)
#checkdepends=(qemu-headless linux tang)
optdepends=('busybox: to enable emergency shell at the boot time')
backup=(etc/booster.yaml)
provides=(initramfs)
source=(booster-$pkgver.zip::https://github.com/anatol/booster/archive/$pkgver.zip)
sha512sums=('e17721c76b97355d738a888e4c1245e1b815710b3f41b7240f2254c0f337354757572b6ba8f97c13ecb278ad184a0014c6e526bfb7ed7a3bdd74aea64fef2ed7')

build() {
  cd booster-$pkgver

  cd generator
  CGO_CPPFLAGS="${CPPFLAGS}" CGO_CFLAGS="${CFLAGS}" CGO_CXXFLAGS="${CXXFLAGS}" CGO_LDFLAGS="${LDFLAGS}" \
    go build -trimpath \
      -buildmode=pie \
      -mod=readonly \
      -modcacherw \
      -ldflags "-linkmode external -extldflags \"${LDFLAGS}\""

  cd ../init
  CGO_ENABLED=0 go build -trimpath -mod=readonly -modcacherw

  cd ..
  ronn docs/manpage.md
}

check() {
  cd booster-$pkgver

  # (cd init; go test)
  # (cd generator; go test)

  # arch chroot does not allow access to KVM
  # TEST_DISABLE_KVM=1 go test -v # disable integration tests for now as it require a lot of time and space to build 10G images
}

package() {
  cd booster-$pkgver
  mkdir "$pkgdir/etc/"
  touch "$pkgdir/etc/booster.yaml"
  install -Dp -m755 generator/booster "$pkgdir/usr/bin/booster"
  install -Dp -m644 docs/manpage.1 "$pkgdir/usr/share/man/man1/booster.1"
  install -Dp -m755 init/init "$pkgdir/usr/lib/booster/init"
  install -Dp -m755 packaging/arch/regenerate_images "$pkgdir/usr/lib/booster/regenerate_images"

  install -Dp -m644 packaging/arch/90-booster-install.hook "$pkgdir/usr/share/libalpm/hooks/90-booster-install.hook"
  install -Dp -m755 packaging/arch/booster-install "$pkgdir/usr/share/libalpm/scripts/booster-install"
  install -Dp -m644 packaging/arch/60-booster-remove.hook "$pkgdir/usr/share/libalpm/hooks/60-booster-remove.hook"
  install -Dp -m755 packaging/arch/booster-remove "$pkgdir/usr/share/libalpm/scripts/booster-remove"
}
